home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 June: ROMin Holiday / ADC Developer CD (1992-06) (''ROMin Holiday'')_iso / Developer Connection - 06-1992.iso / Developer Essentials / MPW Interfaces & Libraries / PInterfaces / Packages.p < prev    next >
Encoding:
Text File  |  1992-01-29  |  8.6 KB  |  267 lines  |  [TEXT/MPS ]

  1.  
  2. {
  3. Created: Sunday, September 15, 1991 at 11:56 PM
  4.  Packages.p
  5.  Pascal Interface to the Macintosh Libraries
  6.  
  7.   Copyright Apple Computer, Inc. 1985-1991
  8.   All rights reserved
  9. }
  10.  
  11.  
  12. {$IFC UNDEFINED UsingIncludes}
  13. {$SETC UsingIncludes := 0}
  14. {$ENDC}
  15.  
  16. {$IFC NOT UsingIncludes}
  17.  UNIT Packages;
  18.  INTERFACE
  19. {$ENDC}
  20.  
  21. {$IFC UNDEFINED UsingPackages}
  22. {$SETC UsingPackages := 1}
  23.  
  24. {$I+}
  25. {$SETC PackagesIncludes := UsingIncludes}
  26. {$SETC UsingIncludes := 1}
  27. {$IFC UNDEFINED UsingTypes}
  28. {$I $$Shell(PInterfaces)Types.p}
  29. {$ENDC}
  30. {$IFC UNDEFINED UsingStandardFile}
  31. {$I $$Shell(PInterfaces)StandardFile.p}
  32. {$ENDC}
  33. {$IFC UNDEFINED UsingScript}
  34. {$I $$Shell(PInterfaces)Script.p}
  35. {$ENDC}
  36. {$SETC UsingIncludes := PackagesIncludes}
  37.  
  38. CONST
  39. listMgr = 0;                            {list manager}
  40. dskInit = 2;                            {Disk Initializaton}
  41. stdFile = 3;                            {Standard File}
  42. flPoint = 4;                            {Floating-Point Arithmetic}
  43. trFunc = 5;                                {Transcendental Functions}
  44. intUtil = 6;                            {International Utilities}
  45. bdConv = 7;                                {Binary/Decimal Conversion}
  46. editionMgr = 11;                        {Edition Manager}
  47. currSymLead = 16;
  48. currNegSym = 32;
  49. currTrailingZ = 64;
  50. currLeadingZ = 128;
  51. zeroCycle = 1;                            {0:00 AM/PM format}
  52. longDay = 0;                            {day of the month}
  53. longWeek = 1;                            {day of the week}
  54. longMonth = 2;                            {month of the year}
  55. longYear = 3;                            {year}
  56. supDay = 1;                                {suppress day of month}
  57. supWeek = 2;                            {suppress day of week}
  58. supMonth = 4;                            {suppress month}
  59. supYear = 8;                            {suppress year}
  60. dayLdingZ = 32;
  61. mntLdingZ = 64;
  62. century = 128;
  63. secLeadingZ = 32;
  64. minLeadingZ = 64;
  65. hrLeadingZ = 128;
  66.  
  67. { Date Orders }
  68. mdy = 0;
  69. dmy = 1;
  70. ymd = 2;
  71. myd = 3;
  72. dym = 4;
  73. ydm = 5;
  74.  
  75.  
  76. { Regional version codes }
  77. verUS = 0;
  78. verFrance = 1;
  79. verBritain = 2;
  80. verGermany = 3;
  81. verItaly = 4;
  82. verNetherlands = 5;
  83. verFrBelgiumLux = 6;                    { French for Belgium & Luxembourg }
  84. verSweden = 7;
  85. verSpain = 8;
  86. verDenmark = 9;
  87. verPortugal = 10;
  88. verFrCanada = 11;
  89. verNorway = 12;
  90. verIsrael = 13;
  91. verJapan = 14;
  92. verAustralia = 15;
  93. verArabic = 16;                            { synonym for verArabia }
  94. verFinland = 17;
  95. verFrSwiss = 18;                        { French Swiss }
  96. verGrSwiss = 19;                        { German Swiss }
  97. verGreece = 20;
  98. verIceland = 21;
  99. verMalta = 22;
  100. verCyprus = 23;
  101. verTurkey = 24;
  102. verYugoCroatian = 25;                    { Croatian system for Yugoslavia }
  103. verIndiaHindi = 33;                        { Hindi system for India }
  104. verPakistan = 34;
  105. verLithuania = 41;
  106. verPoland = 42;
  107. verHungary = 43;
  108. verEstonia = 44;
  109. verLatvia = 45;
  110. verLapland = 46;
  111. verFaeroeIsl = 47;
  112. verIran = 48;
  113. verRussia = 49;
  114. verIreland = 50;                        { English-language version for Ireland }
  115. verKorea = 51;
  116. verChina = 52;
  117. verTaiwan = 53;
  118. verThailand = 54;
  119. minCountry = verUS;
  120. maxCountry = verThailand;
  121.  
  122. {Obsolete region code names, kept for backward compatibility}
  123. verBelgiumLux = 6;                        { (use verFrBelgiumLux instead, less ambiguous) }
  124. verArabia = 16;
  125. verYugoslavia = 25;                        { (use verYugoCroatian instead, less ambiguous) }
  126. verIndia = 33;                            { (use verIndiaHindi instead, less ambiguous) }
  127.  
  128. { Special script code values for International Utilities }
  129. iuSystemScript = -1;                    { system script }
  130. iuCurrentScript = -2;                    { current script (for font of grafPort) }
  131.  
  132. { Special language code values for International Utilities }
  133. iuSystemCurLang = -2;                    { current (itlbLang) lang for system script }
  134. iuSystemDefLang = -3;                    { default (table) lang for system script }
  135. iuCurrentCurLang = -4;                    { current (itlbLang) lang for current script }
  136. iuCurrentDefLang = -5;                    { default lang for current script }
  137. iuScriptCurLang = -6;                    { current (itlbLang) lang for specified script }
  138. iuScriptDefLang = -7;                    { default language for a specified script }
  139.  
  140. { Table selectors for GetItlTable }
  141. iuWordSelectTable = 0;                    { get word select break table from 'itl2' }
  142. iuWordWrapTable = 1;                    { get word wrap break table from 'itl2' }
  143. iuNumberPartsTable = 2;                    { get default number parts table from 'itl4' }
  144. iuUnTokenTable = 3;                        { get unToken table from 'itl4' }
  145. iuWhiteSpaceList = 4;                    { get white space list from 'itl4' }
  146.  
  147. TYPE
  148. DateForm = (shortDate,longDate,abbrevDate);
  149.  
  150.  
  151. Intl0Ptr = ^Intl0Rec;
  152. Intl0Hndl = ^Intl0Ptr;
  153. Intl0Rec = PACKED RECORD
  154.  decimalPt: CHAR;                        {decimal point character}
  155.  thousSep: CHAR;                        {thousands separator character}
  156.  listSep: CHAR;                            {list separator character}
  157.  currSym1: CHAR;                        {currency symbol}
  158.  currSym2: CHAR;
  159.  currSym3: CHAR;
  160.  currFmt: Byte;                            {currency format flags}
  161.  dateOrder: Byte;                        {order of short date elements: mdy, dmy, etc.}
  162.  shrtDateFmt: Byte;                        {format flags for each short date element}
  163.  dateSep: CHAR;                            {date separator character}
  164.  timeCycle: Byte;                        {specifies time cycle: 0..23, 1..12, or 0..11}
  165.  timeFmt: Byte;                            {format flags for each time element}
  166.  mornStr: PACKED ARRAY [1..4] OF CHAR;    {trailing string for AM if 12-hour cycle}
  167.  eveStr: PACKED ARRAY [1..4] OF CHAR;    {trailing string for PM if 12-hour cycle}
  168.  timeSep: CHAR;                            {time separator character}
  169.  time1Suff: CHAR;                        {trailing string for AM if 24-hour cycle}
  170.  time2Suff: CHAR;
  171.  time3Suff: CHAR;
  172.  time4Suff: CHAR;
  173.  time5Suff: CHAR;                        {trailing string for PM if 24-hour cycle}
  174.  time6Suff: CHAR;
  175.  time7Suff: CHAR;
  176.  time8Suff: CHAR;
  177.  metricSys: Byte;                        {255 if metric, 0 if inches etc.}
  178.  intl0Vers: INTEGER;                    {region code (hi byte) and version (lo byte)}
  179.  END;
  180.  
  181. Intl1Ptr = ^Intl1Rec;
  182. Intl1Hndl = ^Intl1Ptr;
  183. Intl1Rec = PACKED RECORD
  184.  days: ARRAY [1..7] OF Str15;            {day names}
  185.  months: ARRAY [1..12] OF Str15;        {month names}
  186.  suppressDay: Byte;                        {255 for no day, or flags to suppress any element}
  187.  lngDateFmt: Byte;                        {order of long date elements}
  188.  dayLeading0: Byte;                        {255 for leading 0 in day number}
  189.  abbrLen: Byte;                            {length for abbreviating names}
  190.  st0: PACKED ARRAY [1..4] OF CHAR;        {separator strings for long date format}
  191.  st1: PACKED ARRAY [1..4] OF CHAR;
  192.  st2: PACKED ARRAY [1..4] OF CHAR;
  193.  st3: PACKED ARRAY [1..4] OF CHAR;
  194.  st4: PACKED ARRAY [1..4] OF CHAR;
  195.  intl1Vers: INTEGER;                    {region code (hi byte) and version (lo byte)}
  196.  localRtn: ARRAY [0..0] OF INTEGER;        {now a flag for opt extension}
  197.  END;
  198.  
  199.  
  200. PROCEDURE InitPack(packID: INTEGER);
  201.  INLINE $A9E5;
  202. PROCEDURE InitAllPacks;
  203.  INLINE $A9E6;
  204.  
  205. FUNCTION IUGetIntl(theID: INTEGER): Handle;
  206.  INLINE $3F3C,$0006,$A9ED;
  207. PROCEDURE IUSetIntl(refNum: INTEGER;theID: INTEGER;intlHandle: Handle);
  208.  INLINE $3F3C,$0008,$A9ED;
  209. PROCEDURE IUDateString(dateTime: LONGINT;longFlag: DateForm;VAR result: Str255);
  210.  INLINE $4267,$A9ED;
  211. PROCEDURE IUDatePString(dateTime: LONGINT;longFlag: DateForm;VAR result: Str255;
  212.  intlHandle: Handle);
  213.  INLINE $3F3C,$000E,$A9ED;
  214. PROCEDURE IUTimeString(dateTime: LONGINT;wantSeconds: BOOLEAN;VAR result: Str255);
  215.  INLINE $3F3C,$0002,$A9ED;
  216. PROCEDURE IUTimePString(dateTime: LONGINT;wantSeconds: BOOLEAN;VAR result: Str255;
  217.  intlHandle: Handle);
  218.  INLINE $3F3C,$0010,$A9ED;
  219. FUNCTION IUMetric: BOOLEAN;
  220.  INLINE $3F3C,$0004,$A9ED;
  221.  
  222. FUNCTION IUMagString(aPtr: Ptr;bPtr: Ptr;aLen: INTEGER;bLen: INTEGER): INTEGER;
  223.  INLINE $3F3C,$000A,$A9ED;
  224. FUNCTION IUMagIDString(aPtr: Ptr;bPtr: Ptr;aLen: INTEGER;bLen: INTEGER): INTEGER;
  225.  INLINE $3F3C,$000C,$A9ED;
  226. FUNCTION IUCompString(aStr: Str255;bStr: Str255): INTEGER;
  227. FUNCTION IUEqualString(aStr: Str255;bStr: Str255): INTEGER;
  228.  
  229. PROCEDURE StringToNum(theString: Str255;VAR theNum: LONGINT);
  230. PROCEDURE NumToString(theNum: LONGINT;VAR theString: Str255);
  231.  
  232. PROCEDURE IULDateString(VAR dateTime: LongDateTime;longFlag: DateForm;VAR result: Str255;
  233.  intlHandle: Handle);
  234.  INLINE $3F3C,$0014,$A9ED;
  235. PROCEDURE IULTimeString(VAR dateTime: LongDateTime;wantSeconds: BOOLEAN;
  236.  VAR result: Str255;intlHandle: Handle);
  237.  INLINE $3F3C,$0016,$A9ED;
  238. PROCEDURE IUClearCache;
  239.  INLINE $3F3C,$0018,$A9ED;
  240. FUNCTION IUMagPString(aPtr: Ptr;bPtr: Ptr;aLen: INTEGER;bLen: INTEGER;itl2Handle: Handle): INTEGER;
  241.  INLINE $3F3C,$001A,$A9ED;
  242. FUNCTION IUMagIDPString(aPtr: Ptr;bPtr: Ptr;aLen: INTEGER;bLen: INTEGER;
  243.  itl2Handle: Handle): INTEGER;
  244.  INLINE $3F3C,$001C,$A9ED;
  245. FUNCTION IUCompPString(aStr: Str255;bStr: Str255;itl2Handle: Handle): INTEGER;
  246. FUNCTION IUEqualPString(aStr: Str255;bStr: Str255;itl2Handle: Handle): INTEGER;
  247. FUNCTION IUScriptOrder(script1: ScriptCode;script2: ScriptCode): INTEGER;
  248.  INLINE $3F3C,$001E,$A9ED;
  249. FUNCTION IULangOrder(language1: LangCode;language2: LangCode): INTEGER;
  250.  INLINE $3F3C,$0020,$A9ED;
  251. FUNCTION IUTextOrder(aPtr: Ptr;bPtr: Ptr;aLen: INTEGER;bLen: INTEGER;aScript: ScriptCode;
  252.  bScript: ScriptCode;aLang: LangCode;bLang: LangCode): INTEGER;
  253.  INLINE $3F3C,$0022,$A9ED;
  254. FUNCTION IUStringOrder(aStr: Str255;bStr: Str255;aScript: ScriptCode;bScript: ScriptCode;
  255.  aLang: LangCode;bLang: LangCode): INTEGER;
  256. PROCEDURE IUGetItlTable(script: ScriptCode;tableCode: INTEGER;VAR itlHandle: Handle;
  257.  VAR offset: LONGINT;VAR length: LONGINT);
  258.  INLINE $3F3C,$0024,$A9ED;
  259.  
  260.  
  261. {$ENDC} { UsingPackages }
  262.  
  263. {$IFC NOT UsingIncludes}
  264.  END.
  265. {$ENDC}
  266.  
  267.